![]() |
![]() |
|
rtk 20172017.1.1Zaokrožanje temperature 1. podnalogaLeta 1966 so pri ameriškem zveznem koordinatorju za meteorologijo ugotovili, da meteorologi po državi v svojih poročilih ne zaokrožajo odčitanih temperatur na cele stopinje vsi na enak način, zato so izdelali priporočilo, ki določa, kako je treba odčitek (realno število) zaokrožiti na najbližje celo število. Pri tem naj se vrednost, ki je točno na sredini med dvema celima številoma,
zaokroži vedno navzgor (t.j. proti višji temperaturi, to velja tudi za negativne
odčitke). Tako se npr. vrednost V deželah, kjer merimo temperaturo v stopinjah Celzija (kjer ničla ustreza
ledišču vode in so zato meritve blizu ničle pomembne), je v navadi še dodatno
pravilo, ki določa, da temperature med NalogaNapisana je funkcija
Vhodni podatkiŠtevilo Omejitve vhodnih podatkovIzhodni podatkiNiz z zaokroženim številom. Uradna rešitevdef zaokrozi(x): """Sprejme število in vrne niz z zaokroženim številom. Vrednosti točno na sredini med dvema celima številoma zaokroži navzgor. Če je x med -0.5 vrne '-0'.""" temperatura = float(x) if temperatura >= -0.5 and temperatura < 0: return "-0" else: desetkrat = int(temperatura * 10) if desetkrat % 10 >= 5: return str(desetkrat // 10 + 1) else: return str(desetkrat // 10) 2017.1.2Najlepši esej 1. podnalogaMinistrstvo za lepobesedje je razpisalo natečaj za najlepše eseje. Pri ocenjevanju
esejev je določilo naslednje pravilo: esej je lep, če so v njem vse besede dolge
od Ministrstvo je najelo programerja, ki bi moral napisati funkcijo NalogaProgramer svojega dela ni dobro opravil. Popravi funkcijo
Vhodni podatkiDatoteka (npr. Izhodni podatkiInformacija ali je esej lep ali esej ni lep. Če esej ni lep, vrnjen niz vsebuje tudi število prekratkih ter število predolgih besed. Zgleduj se po spodnjih dveh primerih. Primer za lep esej:
Primer za esej, ki ni lep in vsebuje KomentarBeseda je sestavljena iz malih in velikih črk angleške abecede, to so znaki
od "a" do "z" in od "A" do "Z". Med besedami so presledki, vejice,
pike in drugi znaki, ki niso črke po angleški abecedi. Beseda je vedno v eni
vrstici (besede niso nikoli deljene). Tvoja rešitev naj bere esej iz datoteke.
Posamezne vrstice vhodnega besedila so dolge po največ Uradna rešitevdef oceni(esej): """Sprejme esej v obliki .txt, ga prebere in določi, če je esej lep.""" prekratke = 0 predolge = 0 with open(esej, 'r', encoding='utf-8') as esej: for vrstica in esej: for beseda in re.findall("[A-Za-z]+", vrstica): if len(beseda) < 3: prekratke += 1 elif len(beseda) > 8: predolge += 1 if prekratke == 0 and predolge == 0: return "Esej je lep." else: return "Esej ni lep: {0} prekratkih, {1} predolgih besed.".format(prekratke, predolge) 2017.1.3Pomanjkanje sendvičev 1. podnalogaVodvstvo Caféja Ma NalogaPopravi program za robota.
Program naj na začetku prebere podatke o trenutni zalogi sendvičev.
Nato naj kupce sprašuje po želenih sendvičih in vsakemu sproti postreže, če je
sendvič še na zalogi, sicer pa naj izpiše, da ga ni. Program naj se konča, ko
kupec zahteva sendvič št.
Vhodni podatkiProgram prebere zalogo sendvičev. Nato uporabnik vnese število med Izhodni podatkiProgram izpiše, če robot postreže sendvič, ki je na zalogi, sicer izpiše,
da sendviča ni na zalogi. Če kupec zahteva sendvič št. Primer
KomentarZgornji primer je bil na tekmovanju le za ilustracijo in je program lahko izpis oblikoval tudi malo drugače. Tvoj program naj izpis oblikuje kot je prikazano v primeru. Uradna rešitevN = 6 zaloga = [int(input("Zaloga sendvicev st. %d: "%t)) for t in range(1, N+1)] stZahtev = [0] * N premalo = False while True: t = int(input("Pozdravljeni, kateri sendvic zelite? ")) if not 1 <= t <= N: break stZahtev[t-1] += 1 if stZahtev[t-1] > zaloga[t-1]: print("Sendvicev tipa %d nam je zal zmanjkalo. " "Vec srece prihodnjic!"%t) premalo = True else: print("Izvolite sendvic st. %d. Dober tek!"%t) if premalo: print("Premalo je bilo sendvicev tipa %s." % " ".join(str(t+1) for t in range(N) if stZahtev[t] > zaloga[t])) najvec = max(stZahtev) print("Najbolj popularni so sendvici st. %s." % " ".join(str(t+1) for t in range(N) if stZahtev[t] == najvec)) 2017.1.5Pike za tisočice 1. podnalogaPri zapisovanju velikih števil pogosto zaradi preglednosti ločimo skupine treh števk s piko. Primer
Kot vidimo iz zadnjega primera, vrivamo pike le levo od decimalne vejice, desno od nje pa ne. NalogaNapisana je funkcija
Vhodni podatkiNiz, ki predstavlja neko število v desetiškem zapisu. Izhodni podatkiNiz, ki predstavlja število v vhodnem nizu z dodanimi pikami. Primeri
Uradna rešitevdef izpis_stevila(s): """Vrne niz, ki predstavlja število v vhodnem nizu z dodanimi pikami.""" n = s.find(',') if n < 0: n = len(s) izhodni_niz = '' for i in range(len(s)): if 0 < i < n and (n - i) % 3 == 0: izhodni_niz += '.' izhodni_niz += s[i] return izhodni_nizMesto objave ob koncu projekta 15.9.2018 |